Software modeling systems usually presents the user with a graphical user interface, and allows specific models that the software is designed for to be developed. Some examples are:    (a) A database modeling tool, which allows the database designers to model entities, relationships between these entities, constraints like participation constraints, cardinality of relationships and such other aspects as weak entities, key attributes, composite attributes, identifying relationships, etc. See, for example, “Visual DBM” from YR Soft, Inc. described at its website See also, “ERwin” for database modeling and design from Blue Ice, Inc. at www.blueice.com/erwin.htm.    (b) An object-oriented CASE tool, which allows the user to create classes and relationships between them, and capture them as class diagrams. It also facilitates the modeling of objects at run-time in the system, allows modeling of dynamic behavior like state transition diagrams and architecting the software by means of component diagrams and deployment diagrams. An example of this is “Rational Rose 98”, from Rational Software Corporation, described at its website.    (c) A procedural CASE tool, which allows the user to develop data flow diagrams and structure charts. An example of this is “FlowCharting PDQ”, from Hallogram, Inc, described at its website.    (d) A business Process Re-engineering tool, which allows the user to create process definitions and specify workflows for the business processes. There are two convenient examples of this modeling tool. The first is “BPwin” from Blue Ice, Inc., described at its website. The second is “ProVision WorkBench” from Proforma Corporation, described at its website.
The systems mentioned above are built with the knowledge of the types of models that they will allow the user to develop. Thus, each tool can support a known, limited set of models to be developed. This is shown in FIG. 1, which is an illustration of the general strategy employed by the modeling tools, where the “knowledge” about the models that the user is allowed to create is embedded into the software of the modeling system.
In other words, a user 10 interacts with the modeling system 12 via a Graphical User Interface 14, which presents the user with interfaces for creating specific models. The GUI14 interacts with Knowledge 16 which is a knowledge base that has knowledge about the type of system models that this system allows the user to create. Models thus developed become outputs 18 from the system 12.
Limitations of such systems include:    (a) If there are changes in the way the models are created, the knowledge embedded in the software has to be updated. Since this knowledge is an inherent part of the software, this needs modification of the code, recompilation and possibly re-linking, before the software is rendered for use with the required modifications.    (b) There could be a need to support variations in the way in which the models are created. For example, the workflow modeling done by company A could be different from the way company B does it. It depends on the particular company and their specific needs, although both of them are basically doing the same activity, namely, defining workflows for business processes.
In these modeling systems, the focus is not on providing a modeling system, which allows the user to create different types of models. The user has no means of controlling the behavior of the system. There also is no consideration of building a system, which is adaptable to changes and has high reusability value.
Meta modeling and method engineering has been the focus of only few research projects. One such project is known as MetaPHOR. The acronym MetaPHOR stands for: Metamodeling, Principles, Hypertext, Objects, and Repositories. The main goal of this research project is to develop architectures, models and technical solutions for the next generation of configurable CASE environments and principles for their effective use through method engineering. This project has yielded tools like MetaEdit and MetaEdit+, which have been commercialized. This research project has also developed a meta modeling language called GOPRR (Graph Object Property Role Relation).
MetaView is a textual metamodeling language also known in the prior art. The aim of this project is to develop CASE-shells, for engineering of SDM (Software Development Methods), support graphical extensions and automatic transformations. As part of the MetaView project, a modeling system called EARA/GE (Entity Aggregation Relation Attribute/Graphical Extension) has been developed.
Known prior art modeling arrangements such as MetaPHOR, MetaView, GOPHR and EARA/GE attempt, with various degrees of success, to overcome the limitations originally discussed. It is an object of the present invention, however, to provide a generalized modeling tool that utilizes a novel and inventive specific implementation that also addresses the limitations originally discussed.